package com.lx.information.service;

import com.lx.information.domain.InformationJointCase;
import com.lx.information.domain.query.InformationJointCaseQuery;

import java.util.List;

/**
 * 共同的案件总Service接口
 *
 * @author lx
 * @date 2023-03-31
 */
public interface IInformationJointCaseService {

    /**
     * 带查询
     */
    String DATA_STATE_1 = "DATA_STATE_1";
    /**
     * 查询中
     */
    String DATA_STATE_2 = "DATA_STATE_2";
    /**
     * 查询失败
     */
    String DATA_STATE_3 = "DATA_STATE_3";
    /**
     * 查询成功
     */
    String DATA_STATE_4 = "DATA_STATE_4";

    /**
     * 查询共同的案件总
     *
     * @param id 共同的案件总主键
     * @return 共同的案件总
     */
    public InformationJointCase selectInformationJointCaseById(Long id);

    /**
     * 查询共同的案件总列表
     *
     * @param informationJointCase 共同的案件总
     * @return 共同的案件总集合
     */
    public List<InformationJointCase> selectInformationJointCaseList(InformationJointCase informationJointCase);

    /**
     * 新增共同的案件总
     *
     * @param informationJointCase 共同的案件总
     * @return 结果
     */
    public int insertInformationJointCase(InformationJointCase informationJointCase);

    /**
     * 修改共同的案件总
     *
     * @param informationJointCase 共同的案件总
     * @return 结果
     */
    public int updateInformationJointCase(InformationJointCase informationJointCase);

    /**
     * 批量删除共同的案件总
     *
     * @param ids 需要删除的共同的案件总主键集合
     * @return 结果
     */
    public int deleteInformationJointCaseByIds(Long[] ids);

    /**
     * 删除共同的案件总信息
     *
     * @param id 共同的案件总主键
     * @return 结果
     */
    public int deleteInformationJointCaseById(Long id);

    /**
     * 批量修改数据状态
     * @param ids
     * @param dataState
     * @return
     */
    int updateDataStateByIds(List<Long> ids, String dataState);

    /**
     * 获取指定用户的数据
     * @param informationJointCaseQuery
     * @param userList
     * @return
     */
    List<InformationJointCase> selectInformationJointCaseListByAuth(InformationJointCaseQuery informationJointCaseQuery, List<Long> userList);

    /**
     * 根据bid获取
     * @param bid
     * @return
     */
    InformationJointCase selectInformationJointCaseByBId(Long bid);
}
